package com.mustafaiev.tair.cts.facade;

import java.util.List;

import com.mustafaiev.tair.cts.exeptions.DataNotRemovedException;
import com.mustafaiev.tair.cts.tapestry.dto.PayerDTO;

/**
 * IPayerFacade
 * 
 * @author tair
 * 
 */
public interface IPayerFacade extends ICostTrackingSystemFacade {

    /**
     * Saves payer into database
     * 
     * @param payer
     */
    void savePayer(PayerDTO payer);

    /**
     * Retrieves payers
     * 
     * @return
     */
    List<PayerDTO> retrievePayers();

    /**
     * Retrieves payer by ID
     * 
     * @param payerId
     * @return
     */
    PayerDTO retrievePayer(Long payerId);

    /**
     * Deletes payers
     * 
     * @param payersToDelete
     * @throws DataNotRemovedException
     */
    void deletePayers(List<PayerDTO> payersToDelete)
            throws DataNotRemovedException;

}
